#include <stdio.h>
#include <stdlib.h>
#include <signal.h>


static void int_handler(int s){
	write(1,"!",1);
}
int main(){

//	signal(SIGINT,SIG_IGN); //忽略中断信号，不能被CTRL+C打断   
	sigset_t set,saveset;
	signal(SIGINT,int_handler);//程序未结束，信号到来时2，执行handler函数
	sigemptyset(&set);
	sigaddset(&set,SIGINT);
	sigprocmask(SIG_UNBLOCK,&set,&saveset);

	for(int j = 0 ;j < 100;j++){
		sigprocmask(SIG_BLOCK,&set,NULL);
		for(int i = 0; i< 10;i++){   //每秒打印一个*到控制台
		 	write(1,"*",1);
			sleep(1);      
		}
		write(1,"\n",1);
		sigprocmask(SIG_UNBLOCK,&set,NULL);
	}

	sigprocmask(SIG_SETMASK,&saveset,NULL);


	exit(0);
}
